/*
  * autor: Jorge Luis Pérez Canto.
 */

package bdfinger;

import java.awt.Graphics;
import java.awt.Insets;
import java.awt.image.BufferedImage;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.border.BevelBorder;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import bdfinger.ClassUtilAsistencia;

import java.io.File;

import java.sql.*;
import java.text.DateFormat;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
//Librerias para la hora actual
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;


public class frmControlDeAsistencia extends javax.swing.JFrame implements Runnable {

    //objecto usado para realizar todas las operaciones relacionadas al Fingerprint-SDK
   private ClassUtilAsistencia huellasSDK;

   //Panel para mostrar la huella digital
   private JPanel fingerprintViewPanel = null;
   
   //Imagen de la huella actual
   private BufferedImage fingerprintImage = null;
   
   public String carnet;
   
    public ClassPermisos P;
    public ResultSet rs;
    public ResultSet rs2;
    public Connection Conexion;
    public boolean cancelar;
    public String IdC;
    public int contador;
    public String hora,minutos,segundos,ampm;
    public Calendar calendario;    
    public Thread h1;
    public int f;   
   
    /** Crea una nueva forma de  PantallaPrincipal */
    public frmControlDeAsistencia() {
        inicializar();
        initComponents();
        this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
        this.P = new ClassPermisos();
        this.Conexion = null;
        this.IdC="";
        //this.cancelar = false;
        this.contador=0;
        h1 = new Thread(this);
        h1.start();   
        
        if (this.Conexion == null)
            this.Conexion=ConexionBd.ConectarBaseDatos(); 
        
//        this.carnet = carnet;
        huellasSDK.inicializarCaptura();
        setLocationRelativeTo(null);
        setVisible(true);
        
        String grFingerNativeDirectory = new File(".").getAbsolutePath();
        ClassUtilAsistencia.setFingerprintSDKNativeDirectory(grFingerNativeDirectory); 
         
        
        if (this.Conexion == null)
            this.Conexion=ConexionBd.ConectarBaseDatos();         
    }    
    
    public Date calcula () {        
        Calendar calendario = new GregorianCalendar();
        Date fechaHoraActual = new Date();
        //fechaHoraActual.toGMTString();
        calendario.setTime(fechaHoraActual);
        
        f = calendario.get(Calendar.DAY_OF_YEAR);
        ampm = calendario.get(Calendar.AM_PM)==Calendar.AM?"AM":"PM";
        if(ampm.equals("PM")){
            int h = calendario.get(Calendar.HOUR_OF_DAY);
            hora = h>9?""+h:"0"+h;
        }else{
            hora = calendario.get(Calendar.HOUR_OF_DAY)>9?""+calendario.get(Calendar.HOUR_OF_DAY):"0"+calendario.get(Calendar.HOUR_OF_DAY);            
        }
        minutos = calendario.get(Calendar.MINUTE)>9?""+calendario.get(Calendar.MINUTE):"0"+calendario.get(Calendar.MINUTE);
        segundos = calendario.get(Calendar.SECOND)>9?""+calendario.get(Calendar.SECOND):"0"+calendario.get(Calendar.SECOND); 
        return fechaHoraActual;
    }    

    //este metodo obtiene la hora del sistema y la muestra en la etiqueta lblHora.
     @Override
    public void run(){
        Thread ct = Thread.currentThread();
        while(ct == h1) {   
            Date fecha = calcula();
            DateFormat df=DateFormat.getDateInstance(DateFormat.SHORT);
            txtFecha.setText(df.format(new Date()).toString());
            txtHora.setText(hora + ":" + minutos + ":" + segundos);
            try {
                Thread.sleep(1000);
            }
            catch(InterruptedException e) {}
        }
    }
    
    
    public void Buscar()
    {   
        cmbCurso.removeAllItems();
        
        txtNombre.setText("");
        
        if ( (!(txtCarnet.getText().equals(""))))
        {
            this.rs = P.Buscar("estudiante", "Carne", txtCarnet.getText());
            try {
                if (rs.next())
                {
                    String Nombre = rs.getString("Nombre");
                    String Apellido = rs.getString("Apellido");
                    txtNombre.setText(Nombre+" "+Apellido);
                    
                    this.rs = P.Buscar("cursoestudiante", "Carne", txtCarnet.getText());
                    if (P.count>0)
                    {
                        cmbCurso.addItem("");
                        cmbCurso.setSelectedIndex(0);   
                        while (this.rs.next())
                        {
                            this.IdC = rs.getString("IdCurso");
                            
                            this.rs2 = P.Buscar("curso", "IdCurso", IdC);
                            
                            cmbCurso.setEnabled(true);
                            btnGuardar.setEnabled(true);
                            
                            if (P.count>0) 
                            {
                                while (this.rs2.next()) 
                                {
                                    cmbCurso.addItem(rs2.getString("Descripcion"));
                                }
                            }
                        }
                    }                
                }
                //
            } catch (SQLException ex) {
                    Logger.getLogger(FrmFaltaJustificada.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        
        this.IdC="0";
    }

    public void CambioDeItem()
    {
        //if (this.cancelar==false)
        if ( !(txtNombre.getText().equals("")) )
        {
            try {
                if (!(cmbCurso.getSelectedItem().toString().equals(""))) 
                {
                    ResultSet rs3 = P.Buscar("curso", "Descripcion", cmbCurso.getSelectedItem().toString());

                    if (rs3.next())
                    {
                        
                        System.out.println("\nId Curso: "+rs3.getString("IdCurso"));
                        System.out.println("Descripcion: "+rs3.getObject("Descripcion"));
                        System.out.println("Hora Entrada: "+rs3.getString("HoraEntrada"));
                        System.out.println("Hora Salida: "+rs3.getString("HoraSalida"));
                        System.out.println("\n--------------------");

                        this.IdC = rs3.getString("IdCurso");
                        txtHora.setText(rs3.getString("HoraEntrada"));     
                        
                        txtCarnet.setEnabled(false);
                        
                    }
                }              
            } catch (SQLException ex) {
                System.out.println("\n\n"+cmbCurso.getComponentCount()+"\n");
                Logger.getLogger(FrmFaltaJustificada.class.getName()).log(Level.SEVERE, null, ex);
            }
            
        }        
    }

    public void Guardar()
    {
        if (!(txtCarnet.getText().equals(""))) 
        {
            if (!(cmbCurso.getSelectedItem().toString().equals("")))
            {
                    String fecha= txtFecha.getText();
                    String[] camFecha = fecha.split("/");
                    fecha ="";
                    fecha= camFecha[2];
                    fecha += "/"+camFecha[1];
                    fecha += "/"+camFecha[0];

                    //JOptionPane.showMessageDialog(null, "Curso: "+cmbCurso.getSelectedItem()+" Hora entrada:"+txtHoraEntrada.getText()+"  ID: "+IdC);

                    P.Insertar("controldeasistencia", txtCarnet.getText(), this.IdC, "1", fecha, txtHora.getText(), "00:00:00");
            } else {
                JOptionPane.showMessageDialog(null, "Error: Seleccione un curso.");
            }
        }
    }

    
    public void Cancelar()
    {
        txtCarnet.setText("");
        txtNombre.setText("");
        
        txtHora.setText("");
        txtFecha.setText("");
        
        cmbCurso.setEnabled(false);
        txtFecha.setEnabled(false);
        
        btnGuardar.setEnabled(false);
        txtCarnet.setEnabled(true);
        
        this.IdC = "0";
        cmbCurso.removeAllItems();
        
    }
     
    //este metodo calcula la hora actual, si es AM o PM
         
     /**
      * Se establece el estilo visual de la aplicación y se realiza la inicialización de la clase 
      * que contiene los huellas principales.
      **/   
    public void inicializar() {
       
       try {
           UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
       } catch (Exception e) {
            System.err.println("No se pudo aplicar el estilo visual");
       }
       
       //Crea una instancia de Util
       //this.huellasSDK = new ClassUtilHuella(this, this.carnet);
       //this.huellasSDK = new ClassUtilHuella(this);
       this.huellasSDK = new ClassUtilAsistencia(this);
   }
    
    /**
    * Crea el panel que contendrá la imagen de la huella digital
    */
   private JComponent crearPanelHuella() {
       //Crea un panel nuevo para mostrar la huella
       fingerprintViewPanel = new JPanel(){
           
           //Se sobreescribe el método paintComponent para habilitar la muestra de la imagen de la huella
           public void paintComponent(Graphics g) {
               super.paintComponent(g);

               //Si hay una imagen para ser mostrada
               if (fingerprintImage!=null) {
                   //Calcula el tamaño y posición de la imagen para ser pintada
                   //el tamaño es ajustado para que ocupe todo el tamaño del panel
                   Insets insets = getInsets();
                   int transX = insets.left;
                   int transY = insets.top;
                   int width  = getWidth()  - getInsets().right  - getInsets().left;
                   int height = getHeight() - getInsets().bottom - getInsets().top;

                   //Se dibuja la imagen
                   g.drawImage(fingerprintImage, transX, transY, width, height, null);
               }

           }

       };

       //Se agrega un border alrededor del panel
       fingerprintViewPanel.setBorder(new CompoundBorder (
               new EmptyBorder (2,2,2,2),
               new BevelBorder(BevelBorder.LOWERED)));
       
       fingerprintViewPanel.setToolTipText("Imagen de la última huella capturada.");
       
       if(fingerprintViewPanel==null)
       {                      
            System.exit(1);
            return null;
       }else{
       
       return fingerprintViewPanel;
       }
       
   }
      
   /**
     * Método utilizado para mostrar la imagen de la huella
     * en el panel correspondiente.
     */
   public void showImage(BufferedImage image) {
       //Utiliza el imageProducer para crear una imagen de la huella digital
       fingerprintImage = image;       
       //Se dibuja la nueva imagen
       repaint();        
   }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        PanelContenedor = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();
        jLabel11 = new javax.swing.JLabel();
        txtCarnet2 = new javax.swing.JTextField();
        txtNombre2 = new javax.swing.JTextField();
        jLabel12 = new javax.swing.JLabel();
        cmbCurso2 = new javax.swing.JComboBox();
        jLabel13 = new javax.swing.JLabel();
        txtFecha2 = new javax.swing.JFormattedTextField();
        jLabel14 = new javax.swing.JLabel();
        jLabel15 = new javax.swing.JLabel();
        txtHora2 = new javax.swing.JFormattedTextField();
        btnGuardar2 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setResizable(false);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowActivated(java.awt.event.WindowEvent evt) {
                formWindowActivated(evt);
            }
            public void windowClosing(java.awt.event.WindowEvent evt) {
                formWindowClosing(evt);
            }
        });

        PanelContenedor.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Huella Digital", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION));
        PanelContenedor.setLayout(new java.awt.BorderLayout());

        jLabel11.setText("No. de Carnet:");

        txtCarnet2.setEnabled(false);
        txtCarnet2.addInputMethodListener(new java.awt.event.InputMethodListener() {
            public void caretPositionChanged(java.awt.event.InputMethodEvent evt) {
            }
            public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) {
                txtCarnet2InputMethodTextChanged(evt);
            }
        });
        txtCarnet2.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtCarnet2KeyPressed(evt);
            }
            public void keyReleased(java.awt.event.KeyEvent evt) {
                txtCarnet2KeyReleased(evt);
            }
            public void keyTyped(java.awt.event.KeyEvent evt) {
                txtCarnet2KeyTyped(evt);
            }
        });

        txtNombre2.setEnabled(false);

        jLabel12.setText("Nombre Completo:");

        cmbCurso2.setEnabled(false);
        cmbCurso2.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                cmbCurso2MouseClicked(evt);
            }
        });
        cmbCurso2.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cmbCurso2ItemStateChanged(evt);
            }
        });

        jLabel13.setText("Curso:");

        txtFecha2.setEnabled(false);

        jLabel14.setText("Fecha actual:");

        jLabel15.setText("Hora:");

        txtHora2.setEnabled(false);

        btnGuardar2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/bdfinger/resources/HuellaGuardar.png"))); // NOI18N
        btnGuardar2.setText("Registrar");
        btnGuardar2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnGuardar2ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(btnGuardar2, javax.swing.GroupLayout.DEFAULT_SIZE, 387, Short.MAX_VALUE)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addComponent(jLabel11)
                        .addGap(24, 24, 24)
                        .addComponent(txtCarnet2, javax.swing.GroupLayout.DEFAULT_SIZE, 291, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel3Layout.createSequentialGroup()
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel12)
                            .addComponent(jLabel14)
                            .addComponent(jLabel13))
                        .addGap(7, 7, 7)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel3Layout.createSequentialGroup()
                                .addGap(3, 3, 3)
                                .addComponent(cmbCurso2, 0, 288, Short.MAX_VALUE))
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                                .addComponent(txtFecha2, javax.swing.GroupLayout.DEFAULT_SIZE, 111, Short.MAX_VALUE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jLabel15)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(txtHora2, javax.swing.GroupLayout.PREFERRED_SIZE, 133, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(txtNombre2, javax.swing.GroupLayout.DEFAULT_SIZE, 291, Short.MAX_VALUE))))
                .addGap(23, 23, 23))
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addGap(11, 11, 11)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                    .addComponent(jLabel11)
                    .addComponent(txtCarnet2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtNombre2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel12))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtHora2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txtFecha2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel14)
                    .addComponent(jLabel15))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                    .addComponent(jLabel13)
                    .addComponent(cmbCurso2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addComponent(btnGuardar2, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(PanelContenedor, javax.swing.GroupLayout.PREFERRED_SIZE, 407, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(PanelContenedor, javax.swing.GroupLayout.PREFERRED_SIZE, 318, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(46, 46, 46))
        );

        PanelContenedor.getAccessibleContext().setAccessibleParent(jPanel2);

        pack();
    }// </editor-fold>//GEN-END:initComponents

private void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivated
    this.PanelContenedor.add(this.crearPanelHuella());
}//GEN-LAST:event_formWindowActivated

private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
    
}//GEN-LAST:event_formWindowClosing

private void txtCarnet2InputMethodTextChanged(java.awt.event.InputMethodEvent evt) {//GEN-FIRST:event_txtCarnet2InputMethodTextChanged
    // TODO add your handling code here:
    //Buscar();
}//GEN-LAST:event_txtCarnet2InputMethodTextChanged

private void txtCarnet2KeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtCarnet2KeyPressed
    // TODO add your handling code here:
    //Buscar();
}//GEN-LAST:event_txtCarnet2KeyPressed

private void txtCarnet2KeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtCarnet2KeyReleased
    // TODO add your handling code here:
    //Buscar();
    //cmbCurso.addItem("Matematica");
}//GEN-LAST:event_txtCarnet2KeyReleased

private void txtCarnet2KeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtCarnet2KeyTyped
    // TODO add your handling code here:
    //Buscar();
}//GEN-LAST:event_txtCarnet2KeyTyped

private void cmbCurso2MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_cmbCurso2MouseClicked
    
}//GEN-LAST:event_cmbCurso2MouseClicked

private void cmbCurso2ItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cmbCurso2ItemStateChanged
    //CambioDeItem();
}//GEN-LAST:event_cmbCurso2ItemStateChanged

private void btnGuardar2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnGuardar2ActionPerformed
    // TODO add your handling code here
    //Buscar();
    huellasSDK.IdentificarPersona();
    Guardar();
}//GEN-LAST:event_btnGuardar2ActionPerformed

public static void main(String[] args) {
    String grFingerNativeDirectory = new File(".").getAbsolutePath();
    ClassUtilAsistencia.setFingerprintSDKNativeDirectory(grFingerNativeDirectory);
    frmControlDeAsistencia fh = new frmControlDeAsistencia();
}

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel PanelContenedor;
    private javax.swing.JButton btnGuardar;
    private javax.swing.JButton btnGuardar1;
    private javax.swing.JButton btnGuardar2;
    private javax.swing.JComboBox cmbCurso;
    private javax.swing.JComboBox cmbCurso1;
    private javax.swing.JComboBox cmbCurso2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JTextField txtCarnet;
    private javax.swing.JTextField txtCarnet1;
    private javax.swing.JTextField txtCarnet2;
    private javax.swing.JFormattedTextField txtFecha;
    private javax.swing.JFormattedTextField txtFecha1;
    private javax.swing.JFormattedTextField txtFecha2;
    private javax.swing.JFormattedTextField txtHora;
    private javax.swing.JFormattedTextField txtHora1;
    private javax.swing.JFormattedTextField txtHora2;
    private javax.swing.JTextField txtNombre;
    private javax.swing.JTextField txtNombre1;
    private javax.swing.JTextField txtNombre2;
    // End of variables declaration//GEN-END:variables

}
